package com.xydtech.ecard.busi.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xydtech.common.annotation.Excel;
import com.xydtech.common.core.domain.BaseEntity;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * 业务预约登记对象 ecard_busi_reservation
 *
 * @author Daniel
 * @date 2021-09-06
 */
@ApiModel(value = "业务预约登记对象")
public class EcardApiEcardBusiReservation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预约编号 */
    @ApiModelProperty(notes = "预约编号")
    private Long resId;

    /** 员工的注册编号 */
    @ApiModelProperty(notes = "员工的注册编号")
    @Excel(name = "员工的注册编号")
    private String registId;

    /** 客户名称/企业名称 */
    @ApiModelProperty(notes = "客户名称/企业名称")
    @Excel(name = "客户名称/企业名称")
    @NotEmpty(message = "客户名称/企业名称不能为空！")
    private String cname;

    /** 证件号码/社会信用代码 */
    @ApiModelProperty(notes = "证件号码/社会信用代码")
    @NotEmpty(message = "证件号码/社会信用代码不能为空！")
    @Excel(name = "证件号码/社会信用代码")
    private String cardNum;

    /** 联系电话 */
    @Excel(name = "联系电话")
    @ApiModelProperty(notes = "联系电话")
    private String telNo;

    /** 产品类型            1-贷款            2-存款            3-理财            4-其他 */
    @Excel(name = "产品类型            1-贷款            2-存款            3-理财            4-其他")
    @ApiModelProperty(notes = "产品类型            1-贷款            2-存款            3-理财            4-其他 ")
    private String prdType;

    /** 预约产品            对应产品配置表产品编号 */
    @Excel(name = "预约产品            对应产品配置表产品编号")
    @ApiModelProperty(notes = "预约产品")
    private Long resPrdId;

    /** 预约产品计量单位 */
    @Excel(name = "预约产品计量单位")
    @ApiModelProperty(notes = "预约产品计量单位")
    private String resPrdUnit;

    /** 预约产品目标:1-个人;2-企业 */
    @Excel(name = "预约产品目标:1-个人;2-企业")
    @ApiModelProperty(notes = "预约产品目标:1-个人;2-企业")
    private String resPrdTarget;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(notes = "预约时间")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date resTime;

    /** 状态            0-待受理            1-无意向            2-已办理 */
    @Excel(name = "状态            0-待受理            1-无意向            2-已办理")
    @ApiModelProperty(notes = "状态            0-待受理            1-无意向            2-已办理")
    private String sts;

    /** 办理产品            对应产品配置表产品编号 */
    @Excel(name = "办理产品            对应产品配置表产品编号")
    @ApiModelProperty(notes = "办理产品")
    private Long prdId;

    @ApiModelProperty(notes = "推荐人Id")
    private Long refRegistId;

    @ApiModelProperty(notes = "计量单位")
    private String prdUnit;

    /** 业务金额 */
    @Excel(name = "业务金额")
    @ApiModelProperty(notes = "业务金额")
    private BigDecimal numbers;

    /** 办理人 */
    @Excel(name = "办理人")
    @NotNull(message = "客户经理不能为空！")
    private Long cmRegistId;

    /** 办理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "办理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date acceptTime;

    /** 业务办理凭证 */
    @Excel(name = "业务办理凭证")
    private String certImage;

    /** 产品大类名称 */
    @ApiModelProperty(notes = "产品大类名称")
    private String prdTypeName;

    /** 预约产品名称 */
    @ApiModelProperty(notes = "预约产品名称")
    private String resPrdName;

    /** 办理产品名称 */
    @ApiModelProperty(notes = "办理产品名称")
    private String prdName;

    /** 状态汉字 */
    @ApiModelProperty(notes = "状态汉字")
    private String stsName;

    /** 客户经理名称 */
    @ApiModelProperty(notes = "客户经理名称")
    private String custmanagerName;

    /** 客户经理手机号 */
    @ApiModelProperty(notes = "客户经理手机号")
    private String cmPhoneNo;

    /** 初审报告链接贷款产品启用生成报告时使用 */
    @ApiModelProperty(notes = "初审报告链接贷款产品启用生成报告时使用")
    private String reportUrl;

    /** 产品目标:1-个人，2-企业 */
    @ApiModelProperty(notes = "产品目标:1-个人，2-企业")
    private String prdTarget;

    /** 联系人 */
    @ApiModelProperty(notes = "联系人")
    private String linkman;

    /** 纳税人识别号 */
    @ApiModelProperty(notes = "纳税人识别号")
    private String taxNumber;

    /** 省 */
    @ApiModelProperty(notes = "省")
    private String proCode;

    /** 市 */
    @ApiModelProperty(notes = "市")
    private String cityCode;

    /** 区县 */
    @ApiModelProperty(notes = "区县")
    private String areaCode;

    /** 乡镇/街道 */
    @ApiModelProperty(notes = "乡镇/街道")
    private String townCode;

    /** 村庄/社区 */
    @ApiModelProperty(notes = "村庄/社区")
    private String villagCode;

    /** 财税分析报告链接 */
    @ApiModelProperty(notes = "财税分析报告链接")
    private String taxReportUrl;

    /** 交易分析报告 */
    @ApiModelProperty(notes = "交易分析报告")
    private String transReportUrl;


    /** 交易分析报告 */
    @ApiModelProperty(notes = "交易分析报告")
    private String pdfReport;

    public void setResId(Long resId)
    {
        this.resId = resId;
    }

    public Long getResId()
    {
        return resId;
    }

    public String getRegistId() {
        return registId;
    }

    public void setRegistId(String registId) {
        this.registId = registId;
    }

    public void setCname(String cname)
    {
        this.cname = cname;
    }

    public String getCname()
    {
        return cname;
    }
    public void setCardNum(String cardUm)
    {
        this.cardNum = cardUm;
    }

    public String getCardNum()
    {
        return cardNum;
    }
    public void setTelNo(String telNo)
    {
        this.telNo = telNo;
    }

    public String getTelNo()
    {
        return telNo;
    }
    public void setPrdType(String prdType)
    {
        this.prdType = prdType;
    }

    public String getPrdType()
    {
        return prdType;
    }
    public void setResPrdId(Long resPrdId)
    {
        this.resPrdId = resPrdId;
    }

    public Long getResPrdId()
    {
        return resPrdId;
    }

    public String getResPrdUnit() {
        return resPrdUnit;
    }

    public void setResPrdUnit(String resPrdUnit) {
        this.resPrdUnit = resPrdUnit;
    }

    public String getResPrdTarget() {
        return resPrdTarget;
    }

    public void setResPrdTarget(String resPrdTarget) {
        this.resPrdTarget = resPrdTarget;
    }

    public void setResTime(Date resTime)
    {
        this.resTime = resTime;
    }

    public Date getResTime()
    {
        return resTime;
    }
    public void setSts(String sts)
    {
        this.sts = sts;
    }

    public String getSts()
    {
        return sts;
    }
    public void setPrdId(Long prdId)
    {
        this.prdId = prdId;
    }

    public Long getPrdId()
    {
        return prdId;
    }

    public String getPrdUnit() {
        return prdUnit;
    }

    public void setPrdUnit(String prdUnit) {
        this.prdUnit = prdUnit;
    }

    public void setNumbers(BigDecimal numbers)
    {
        this.numbers = numbers;
    }

    public BigDecimal getNumbers()
    {
        return numbers;
    }

    public Long getCmRegistId() {
        return cmRegistId;
    }

    public void setCmRegistId(Long cmRegistId) {
        this.cmRegistId = cmRegistId;
    }

    public void setAcceptTime(Date acceptTime)
    {
        this.acceptTime = acceptTime;
    }

    public Date getAcceptTime()
    {
        return acceptTime;
    }
    public void setCertImage(String certImage)
    {
        this.certImage = certImage;
    }

    public String getCertImage()
    {
        return certImage;
    }

    public String getPrdTypeName() {
        return prdTypeName;
    }

    public void setPrdTypeName(String prdTypeName) {
        this.prdTypeName = prdTypeName;
    }

    public String getResPrdName() {
        return resPrdName;
    }

    public void setResPrdName(String resPrdName) {
        this.resPrdName = resPrdName;
    }

    public String getPrdName() {
        return prdName;
    }

    public void setPrdName(String prdName) {
        this.prdName = prdName;
    }

    public String getStsName() {
        return stsName;
    }

    public void setStsName(String stsName) {
        this.stsName = stsName;
    }

    public String getCustmanagerName() {
        return custmanagerName;
    }

    public void setCustmanagerName(String custmanagerName) {
        this.custmanagerName = custmanagerName;
    }

    public String getCmPhoneNo() {
        return cmPhoneNo;
    }

    public void setCmPhoneNo(String cmPhoneNo) {
        this.cmPhoneNo = cmPhoneNo;
    }

    public String getReportUrl() {
        return reportUrl;
    }

    public void setReportUrl(String reportUrl) {
        this.reportUrl = reportUrl;
    }

    public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getPrdTarget() {
        return prdTarget;
    }

    public void setPrdTarget(String prdTarget) {
        this.prdTarget = prdTarget;
    }

    public String getTaxNumber() {
        return taxNumber;
    }

    public void setTaxNumber(String taxNumber) {
        this.taxNumber = taxNumber;
    }

    public String getProCode() {
        return proCode;
    }

    public void setProCode(String proCode) {
        this.proCode = proCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getTownCode() {
        return townCode;
    }

    public void setTownCode(String townCode) {
        this.townCode = townCode;
    }

    public String getVillagCode() {
        return villagCode;
    }

    public void setVillagCode(String villagCode) {
        this.villagCode = villagCode;
    }

    public String getTaxReportUrl() {
        return taxReportUrl;
    }

    public void setTaxReportUrl(String taxReportUrl) {
        this.taxReportUrl = taxReportUrl;
    }

    public String getTransReportUrl() {
        return transReportUrl;
    }

    public void setTransReportUrl(String transReportUrl) {
        this.transReportUrl = transReportUrl;
    }

    public Long getRefRegistId() {
        return refRegistId;
    }

    public void setRefRegistId(Long refRegistId) {
        this.refRegistId = refRegistId;
    }

    public String getPdfReport() {
        return pdfReport;
    }

    public void setPdfReport(String pdfReport) {
        this.pdfReport = pdfReport;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("resId", getResId())
            .append("registId", getRegistId())
            .append("cname", getCname())
            .append("cardNum", getCardNum())
            .append("telNo", getTelNo())
            .append("prdType", getPrdType())
            .append("resPrdId", getResPrdId())
            .append("resTime", getResTime())
            .append("sts", getSts())
            .append("prdId", getPrdId())
            .append("prdUnit", getPrdUnit())
            .append("numbers", getNumbers())
            .append("cmRegistId", getCmRegistId())
            .append("acceptTime", getAcceptTime())
            .append("certImage", getCertImage())
            .append("prdTypeName", getPrdTypeName())
            .append("resPrdName", getResPrdName())
            .append("resPrdUnit", getResPrdUnit())
            .append("resPrdTarget", getResPrdTarget())
            .append("prdName", getPrdName())
            .append("stsName", getStsName())
            .append("custmanagerName", getCustmanagerName())
            .append("cmPhoneNo", getCmPhoneNo())
            .append("reportUrl", getReportUrl())
            .append("linkman", getLinkman())
            .append("prdTarget", getPrdTarget())
            .append("taxNumber", getTaxNumber())
            .append("proCode", getProCode())
            .append("cityCode", getCityCode())
            .append("areaCode", getAreaCode())
            .append("townCode", getTownCode())
            .append("villagCode", getVillagCode())
            .append("taxReportUrl", getTaxReportUrl())
            .append("transReportUrl", getTransReportUrl())
            .append("refRegistId", getRefRegistId())
            .append("pdfReport", getPdfReport())
            .toString();
    }
}
